# coding=utf-8
__author__ = 'luojianbo'

import re, traceback
import toolsutil


class CaseIdParser:
    def __init__(self):
        self.id_patterns = [re.compile(u'（\d{4}）[^0-9]+\d+号'),
                            re.compile(u'（\d+）[^0-9]+\d+号'),
                            re.compile(u'（\d+）.{1,10}\d+号'),
                            re.compile(u'（,\d+）[^0-9]+\d+号'),
                            re.compile(u'（\d+）\S+第\S+号'),
                            ]

    # 从正文提取所有案号构成关联案
    def get_case_ids(self, content):
        content = content.replace('(', u'（').replace(')', u'）')
        content = content.replace('[', u'（').replace(']', u'）')
        content = content.replace(u'〔', u'（').replace('〕', u'）')
        ids = set()
        for pattern in self.id_patterns:
            results = pattern.findall(content)
            for id in results:
                id = id.strip()
                if len(id) > 0:
                    ids.add(id)
        ids = list(ids)
        norm_ids = list()
        for i in range(0, len(ids)):
            found = False
            for j in range(0, len(ids)):
                if i == j: continue
                if ids[i] in ids[j]:
                    found = True
                    break
            if not found:
                norm_ids.append(ids[i])
        return norm_ids

    def get_case_id(self, content):
        content = content.replace('(', u'（').replace(')', u'）')
        content = content.replace('[', u'（').replace(']', u'）')
        content = content.replace(u'〔', u'（').replace('〕', u'）')
        for pattern in self.id_patterns:
            results = pattern.findall(content)
            if results and len(results) > 0:
                return results[0]
        return ''


if __name__ == '__main__':
    text = '宁波市江东区人民法院 民 事 判 决 书 （,2015）鄂洪山民初字第01595号事民事裁定书  法定代表人：张益明，该院院长。 委托代理人：张帅军，浙江欧硕律师事务所律师。 委托代理人：袁佳蓓，浙江欧硕律师事务所律师。 原告张旭东为与被告中国人民解放军第一一三医院医疗损害责任纠纷一案，于2015年8月19日向法院提起诉讼，诉请：要求被告赔偿医疗费205345.99元、残疾赔偿金397395元、护理费13334元、交通费16070.20元、住宿费4190元、住院伙食补助费1820元、精神损害抚慰金50000元，合计688155.19元的60%，即412893.11元。本院受理后，依法适用简易程序，于2016年1月14日公开开庭进行审理。在案件审理过程中，原告增加部分诉请，医疗费变更为209993.31元、护理费变更为15333元、住宿费变更为4264元、交通费变更为17773元、住院伙食补助费变更为2060元。现已审理终结。 案件相关情况 双方有争议的事项为第二至八项、第十项，其他事项双方无争议。 一、治疗经过： 原告于2013年1月31日因“发现头皮多发肿块1年余”入住被告处，并于2月1日行头皮肿物切除术，2月6日再行头皮肿物扩大切除术，2月8日出院，共计住院8天。 2014年12月26日，原告入住复旦大学附属华山医院，经诊断为黑色素瘤，于2014年12月29日行颅内黑色素瘤切除术，于2015年1月8日出院，共计住院13天。 2015年1月16日，原告入住中国人民解放军空军总医院，经诊断为黑色素瘤脑内多发转移，肝功能异常，于2015年1月22日出院，共计住院6天。 2015年1月22日，原告入住北京肿瘤医院，经诊断为头皮黑色素瘤术后T4N0M1IV期脑转移术后复发r刀治疗术后，于1月26日给予一线方案治疗，于2015年1月27日出院，共计住院5天。 2015年3月5日，原告入住北京肿瘤医院，再行第二周期治疗，于3月9日出院，共计住院4天。 2015年4月13日，原告入住北京肿瘤医院，再行第三周期治疗，于4月13日出院，共计住院1天。 2015年5月13日，原告入住宁波市医疗中心李惠利医院予以化疗，于2015年5月14日出院，共计住院1天。 2015年5月14日，原告入住宁波市医疗中心李惠利医院予以化疗，于2015年5月18日出院，共计住院4天。 2015年6月16日，原告入住宁波市医疗中心李惠利医院予以化疗，于2015年6月20日出院，共计住院4天。 二、医疗费： 原告主张及证据：2014年12月26日至2015年4月13日，原告共计住院5次，支出医疗费239378.24元，其中报销金额为84916.74元，民政局补贴46339元，实际支出108122.5元，另有未报销的票据及进口药物4834元美金，共计209993.31元。为此，提供宁波市鄞州区临时救助申请（审批）表原件一份、结算单复印件五份、进口药物发票原件一份及医疗费票据原件一组。 经质证，被告对上述证据的真实性、合法性无异议，但对关联性有异议。审批表仅是原告的救助申请，并非实际支出。进口药物并未有医嘱，且该票据由进出口公司盖章出具，并非发票。医疗费系用于治疗原告的原发疾病，与被告的诊疗行为无关，且部分票据系口腔用药，与本次医疗纠纷无涉。原告在被告处产生的医疗费用系用于治疗原发疾病，应当予以剔除。 针对被告的质证意见，原告认为，原告因药物反应导致口腔出血，故需口腔用药。 本院认为，因被告对上述证据无异议，本院予以确认。申请表与结算单相互对应，与原告陈述亦相符，原告自认已领取民政补贴46339元，本院予以确认，原告5次住院自负部分为108122.5元。进口药物因无医嘱，本院对关联性不予采纳。未经报销医疗费票据经核对，其中二份为复印费发票，另有一份2015年4月23日中国人民解放军医疗门诊收费票据重复，记载在原告名下的共计55061.49元，包括2013年1月31日至2月8日在被告处就医的2447.11元。在庭审中过程中，被告表示无需对医疗费用的合理性进行鉴定，故本院对上述费用的合理性均予以认定。 三、残疾赔偿金： 原告计算方式：44155元／年30年30%="397"395元。 被告计算方式：44155元／年20年30%="264"930元。 四、护理费： 原告主张及证据：上述住院期间共计46天，按10000元／月护理费标准计，共计15333元。为此，提供收入证明原件一份。 被告主张及证据：对证明不予认可。护理费标准应当按全社会职工平均工资计，护理期间应当扣除在被告处住院的8天。 本院认为，因证明系孤证，无纳税凭证等其他证据佐证，故本院对真实性不予认定，护理费标准按149元／天计。 五、交通费： 原告主张及证据：交通费共计17773元，提供交通费票据原件一组。 经质证，被告对真实性、关联性有异议，部分票据连号，停车费亦非必要费用，机票费用过高。 本院认为，因上述证据系原件，本院对真实性予以认定。交通费票据的时间基本与原告就诊时间相吻合，原告主张的交通费包括机票及保险费用、火车票、停车费、客运及地铁费用、过路费，经核对，票据金额共计17799元。 六、住宿费： 原告主张及证据：住宿费共计4264元，提供住宿费票据原件一组。 经质证，被告认为住宿费并非必然产生费用。 本院认为，其中一份票据为复印费用，应予以剔除。编号为0094574的票据无相应单位盖章，对真实性、关联性不予认可。因被告未对票据真实性提出异议，故对其他票据的真实性予以认可。 七、住院期间伙食补助费： 原告计算方式：30元／天17天＋50元／天31天="2"060元。 被告计算方式：30元／天38天="1"140元。 八、精神损害抚慰金： 原告主张：精神损害抚慰金50000元。 被告主张：原告的损害后果是由其自身的原发性疾病造成，与被告的诊疗行为无涉，故无需承担。 九、鉴定结论： 2015年4月29日，双方曾共同委托宁波市医学会进行鉴定，该会出具鉴定结论：被告在医疗活动中存在医疗过错，与原告的人身损害后果存在一些因果关系；原告目前的人身损害后果等级为三级丙等；本例医疗过错对原告人身医疗损害结果的责任程度为轻微责任。 2015年11月3日，双方再行共同委托浙江大学司法鉴定中心进行鉴定，该中心出具鉴定结论：原告在两次手术后发生恶性黑色素瘤脑转移及病情恶化，与院方的诊疗过错存在间接因果关系，属次要作用，参与度建议以25%左右为宜。 十、责任比例： 原告主张：鉴定结论中院方的责任比例过低。 被告主张：被告在此例诊疗过程中不存在过错，提供医疗损害鉴定陈述书原件2份。 经质证，原告对此不予认可。 本院认为，因双方对鉴定结论真实性无异议，且系双方共同委托鉴定，在双方均未提供证据推翻鉴定结论的前提下，本院采信鉴定结论。 裁判理由与结果 本院认为，本案的争议焦点如下： 一、因果关系的认定。 经两次鉴定，鉴定机构均认为被告的诊疗行为与原告的损害后果间存在一定的因果关系，故虽被告辩称其不存在过错，但未提供足以推翻鉴定结论的证据，本院对其辩称不予采纳，进而被告应当对原告的损害后果承担相应的赔偿责任。 二、赔偿依据及计算方式。 1、医疗费用是指患者因发生医疗事故造成人身损害后，接受医学上的检查、治疗与康复所必须支出的费用。本案中，原告首次入住被告处系接受原发疾病的诊治，故该期间的费用应予剔除。之后5次住院产生的医疗费用，原告自愿扣除医保报销及民政补贴部分，系其对私权利的处分，本院予以确认。因被告未申请对医疗费用的合理性进行鉴定，本院对上述费用均予以确认。经核对，医疗费用共计160736.88元。 2、残疾赔偿金。根据《医疗事故分级标准（试行）》的规定，原告的人身损害后果等级为三级丙等，其对应的伤残等级为八级。根据《最高人民法院关于审理人身损害赔偿案件适用法律若干问题的解释》第二十五条的规定，残疾赔偿金根据受害人丧失劳动能力程度或者伤残等级，按照受诉法院所在地上一年度城镇居民人均可支配收入或者农村居民人均纯收入标准，自定残之日起按二十年计算。故本案中，原告的残疾赔偿金应当以被告的计算公式为准，原告主张以30年计缺乏相应依据，本院不予支持。经核算，残疾赔偿金为264930元。 3、护理费。护理费如前述按149元／天计，原告住院期间共计46天，扣除在被告处治疗原发疾病住院期间8天，共计住院38天，护理费为5662元。 4、交通费。交通费是患者及其必要陪护人员因就医或者转院治疗所实际发生的费用。本案中，原告就诊医院多为外地，部分发票与就医地点、时间、人数及次数基本吻合，但部分停车费等无具体时间，且原告多采飞机作为交通工龄，虽因病势急情有可原，但金额过高，本院酌情调整交通费为12000元。 5、住宿费。住宿费与原告就医时间吻合，根据盖有公章的票据记载，金额为3192元，本院予以支持。 6、住院伙食补助费。伙食费标准按50元／天计，共计住院38天，故费用为1900元。 7、精神损害抚慰金。原告刚成年，本次医疗事故对其心理及生理活动造成了一定的不良影响，本院酌情支持精神损害抚慰金10000元。 三、责任比例。 因鉴定结论认定被告对此次事故的过错参与度为25%，故应以此作为责任比例依据。 综上，依照《中华人民共和国侵权责任法》第五十四条、第五十五条，《最高人民法院关于审理人身损害赔偿案件适用法律若干问题的解释》第十七条、第十八条、第十九条、第二十一条、第二十二条、第二十三条、第二十五条及《最高人民法院关于适用﹤中华人民共和国民事诉讼法﹥的解释》第九十条之规定，判决如下： 一、被告中国人民解放军第一一三医院赔偿原告张旭东医疗费160736.88元、残疾赔偿金264930元、护理费5662元、交通费12000元、住宿费3192元、住院伙食补助费1900元，共计448420.88元的25%，即112105.22元； 二、被告中国人民解放军第一一三医院赔偿原告张旭东精神损害抚慰金10000元； 三、驳回原告张旭东的其他诉讼请求。 上述第一、二项共计122105.22元，被告中国人民解放军第一一三医院应当于本判决生效之日起十日内履行完毕。 如果被告中国人民解放军第一一三医院未按本判决指定的期间履行给付金钱义务，应依照《中华人民共和国民事诉讼法》第二百五十三条及相关司法解释之规定，加倍支付迟延履行期间的债务利息（加倍部分债务利息=债务人尚未清偿的生效法律文书确定的除一般债务利息之外的金钱债务日万分之一点七五延迟履行期间）。 本案受理费减半收取3747元，由原告张旭东负担2376元，被告中国人民解放军第一一三医院负担1371元。被告应负担部分自本判决生效之日起五日内交至法院。 如不服本判决，可在判决书送达之日起十五日内，向本院递交上诉状，并按对方当事人的人数提出副本，上诉于浙江省宁波市中级人民法院。上诉人在收到本院送达的上诉案件受理费缴纳通知书后七日内，凭判决书向浙江省宁波市中级人民法院立案大厅收费窗口预交上诉案件受理费，地址：宁波市兴宁东路568号；如银行汇款，收款人为宁波市财政局非税资金专户，帐号：3792，开户银行：宁波市中国银行营业部；如邮政汇款，收款人为宁波市中级人民法院立案室。汇款时一律注明原审案号。逾期不交，作自动放弃上诉处理。 审 判 员　　陈　奕 二〇一六年二月三日 代书记员　　林静益 本案引用的法律条文 《中华人民共和国侵权责任法》 第五十四条患者在诊疗活动中受到损害，医疗机构及其医务人员有过错的，由医疗机构承担赔偿责任。 第五十五条医务人员在诊疗活动中应当向患者说明病情和医疗措施。需要实施手术、特殊检查、特殊治疗的，医务人员应当及时向患者说明医疗风险、替代医疗方案等情况，并取得其书面同意；不宜向患者说明的，应当向患者的近亲属说明，并取得其书面同意。 医务人员未尽到前款义务，造成患者损害的，医疗机构应当承担赔偿责任。 《最高人民法院关于审理人身损害赔偿案件适用法律若干问题的解释》 第十七条受害人遭受人身损害，因就医治疗支出的各项费用以及因误工减少的收入，包括医疗费、误工费、护理费、交通费、住宿费、住院伙食补助费、必要的营养费，赔偿义务人应当予以赔偿。 受害人因伤致残的，其因增加生活上需要所支出的必要费用以及因丧失劳动能力导致的收入损失，包括残疾赔偿金、残疾辅助器具费、被扶养人生活费，以及因康复护理、继续治疗实际发生的必要的康复费、护理费、后续治疗费，赔偿义务人也应当予以赔偿。 受害人死亡的，赔偿义务人除应当根据抢救治疗情况赔偿本条第一款规定的相关费用外，还应当赔偿丧葬费、被扶养人生活费、死亡补偿费以及受害人亲属办理丧葬事宜支出的交通费、住宿费和误工损失等其他合理费用。 第十八条受害人或者死者近亲属遭受精神损害，赔偿权利人向人民法院请求赔偿精神损害抚慰金的，适用《最高人民法院关于确定民事侵权精神损害赔偿责任若干问题的解释》予以确定。 精神损害抚慰金的请求权，不得让与或者继承。但赔偿义务人已经以书面方式承诺给予金钱赔偿，或者赔偿权利人已经向人民法院起诉的除外。 第十九条医疗费根据医疗机构出具的医药费、住院费等收款凭证，结合病历和诊断证明等相关证据确定。赔偿义务人对治疗的必要性和合理性有异议的，应当承担相应的举证责任。 医疗费的赔偿数额，按照一审法庭辩论终结前实际发生的数额确定。器官功能恢复训练所必要的康复费、适当的整容费以及其他后续治疗费，赔偿权利人可以待实际发生后另行起诉。但根据医疗证明或者鉴定结论确定必然发生的费用，可以与已经发生的医疗费一并予以赔偿。 第二十一条护理费根据护理人员的收入状况和护理人数、护理期限确定。 护理人员有收入的，参照误工费的规定计算；护理人员没有收入或者雇佣护工的，参照当地护工从事同等级别护理的劳务报酬标准计算。护理人员原则上为一人，但医疗机构或者鉴定机构有明确意见的，可以参照确定护理人员人数。 护理期限应计算至受害人恢复生活自理能力时止。受害人因残疾不能恢复生活自理能力的，可以根据其年龄、健康状况等因素确定合理的护理期限，但最长不超过二十年。 受害人定残后的护理，应当根据其护理依赖程度并结合配制残疾辅助器具的情况确定护理级别。 第二十二条交通费根据受害人及其必要的陪护人员因就医或者转院治疗实际发生的费用计算。交通费应当以正式票据为凭；有关凭据应当与就医地点、时间、人数、次数相符合。 第二十三条住院伙食补助费可以参照当地国家机关一般工作人员的出差伙食补助标准予以确定。 受害人确有必要到外地治疗，因客观原因不能住院，受害人本人及其陪护人员实际发生的住宿费和伙食费，其合理部分应予赔偿。 第二十五条残疾赔偿金根据受害人丧失劳动能力程度或者伤残等级，按照受诉法院所在地上一年度城镇居民人均可支配收入或者农村居民人均纯收入标准，自定残之日起按二十年计算。但六十周岁以上的，年龄每增加一岁减少一年；七十五周岁以上的，按五年计算。 受害人因伤致残但实际收入没有减少，或者伤残等级较轻但造成职业妨害严重影响其劳动就业的，可以对残疾赔偿金作相应调整。 《最高人民法院关于适用﹤中华人民共和国民事诉讼法﹥的解释》 第九十条当事人对自己提出的诉讼请求所依据的事实或者反驳对方诉讼请求所依据的事实，应当提供证据加以证明，但法律另有规定的除外。 在作出判决前，当事人未能提供证据或者证据不足以证明其事实主张的，由负有举证证明责任的当事人承担不利的后果。'
    text = '(2014)佛中法民二初字第167-3号,佛山市顺德区即达珠宝金行有限公司、'
    caseid_parser = CaseIdParser()
    case_id = caseid_parser.get_case_id(text)
    print case_id
